From: Florian Müllner Date: Sat, 10 Sep 2011 01:41:39 +0000 (+0200) Subject: panel: Fix corner highlight X-Git-Tag: archive/raspbian/50.5-1+rpi1~1^2~1013^2^2~7720 X-Git-Url: https://dgit.raspbian.org/%22http://www.example.com/cgi/%22/%22http:/www.example.com/cgi/%22?a=commitdiff_plain;h=0518d69b72ecec0153a6a4fcc6cc09ce7f1708b5;p=gnome-shell.git panel: Fix corner highlight The style of the top bar's corners is bound to the style of the corresponding button; we used to hardcode this association, but as the login mode does have a different layout, the button is now determined programmatically. Unfortunately, some containers take the text direction into account when ordering their children, while some don't, so the current code returned the wrong button in RTL locales. https://bugzilla.gnome.org/show_bug.cgi?id=658983 --- diff --git a/js/ui/panel.js b/js/ui/panel.js index 57c5df4aa..b64a1b224 100644 --- a/js/ui/panel.js +++ b/js/ui/panel.js @@ -764,11 +764,21 @@ PanelCorner.prototype = { }, _boxStyleChanged: function() { - let button; + let side = this._side; + + let rtlAwareContainer = this._box instanceof St.BoxLayout; + if (rtlAwareContainer && + this._box.get_direction() == St.TextDirection.RTL) { + if (this._side == St.Side.LEFT) + side = St.Side.RIGHT; + else if (this._side == St.Side.RIGHT) + side = St.Side.LEFT; + } - if (this._side == St.Side.LEFT) + let button; + if (side == St.Side.LEFT) button = this._findLeftmostButton(this._box); - else if (this._side == St.Side.RIGHT) + else if (side == St.Side.RIGHT) button = this._findRightmostButton(this._box); if (button) {